<?php

include "../lib/start.php";

check_session();
check_permission(ADM_PERM);

/*******************************************************************
          createAccount

  funzione che genera automaticamente una login e una password
  per un utente, a partire dalla stringa cognome nome
  @param: $arr - array ottenuto dallo split della stringa cognome nome
  @param: $index - indice che regola l'estrazione dei caratteri dal nome, e viene incrementato per evitare duplicazioni
  @param: $words - array contenente le stringhe di lunghezza fissa necessarie alla generazione della password
  @return: $ac - array contenente le stringhe login e password
  
*******************************************************************/
function createAccount($arr, $index, $words, &$ind){
    // generazione login
    $stringa = "";
    if(@preg_match("/^\(/", $arr[count($arr) - 1]))
    	unset($arr[count($arr) - 1]);
    if($index >= strlen($arr[count($arr) - 1])){
    	$arr[count($arr) - 1] .= $ind;
    	$ind++;
    }
    if(count($arr) == 2)
       $stringa = substr($arr[1], 0, $index).".".$arr[0];
    else if(count($arr) >= 3){
         if(strlen($arr[0]) > 2)
            $stringa = substr($arr[count($arr) - 1], 0, $index).".".$arr[0];
         else
            $stringa = substr($arr[count($arr) - 1], 0, $index).".".$arr[0].$arr[1];
    }

    // generazione password
    $passa = "";
    $passa .= rand(0, 9);
    $passa .= rand(0, 9);
    $passa .= $words[rand(0, count($words) -1)];
    $passa .= rand(0, 9);
    $passa .= rand(0, 9);

    $ac = array($stringa, $passa);
    return $ac;
}

class Alunno{
	var $id_alunno;
    var $username;
    var $password;
    var $nome;
    var $cognome;
    var $clean_pwd; // pwd in chiaro
    
    function Alunno($dati){
        $this->id_alunno = $dati['id_alunno'];
        $this->username = trim($dati['username']);
        $this->password = $dati['password'];
        $this->nome = trim($dati['nome']);
        $this->cognome = $dati['cognome'];
    }
}

/*
 * primo caso: type=student
 * si tratta di controllare tutti gli account alunni attivi per creare username e password
 * se check=1 viene creato un report diagnostico con le operazioni che verranno eseguite
 * e viene chiesto di continuare
 * se invece check=0 significa che le operazioni vanno eseguite
 * ### NB per ora check non e' implementato ###
 * 
 */
if($_GET['type'] === "student"){
	$alunni = array();
	// file di log
	$log_file = fopen("../tmp/studenti".date("Ymd"), "w+");
	
	$index = 0;
	$incompleti = 0;
	$sel = "SELECT id_alunno, nome, cognome, username, password FROM alunni WHERE attivo = 1";
	$res = $db->execute($sel);
	while($_alunno = $res->fetch_assoc()){
		if($_alunno['username'] == ''){
			$al = new Alunno($_alunno);
			$incompleti++;
			$al->username = get_login($db, $al->nome, $al->cognome);
			$al->password = get_password($al->nome, $al->cognome, &$al->clean_pwd);
			//print ($al->username).":".$al->password."<br/>";
			$upd = "UPDATE alunni SET username = '".$al->username."', password = '".$al->password."' WHERE id_alunno = ".$al->id_alunno;
			$r = $db->execute($upd);
			$str_log = $al->nome." ".$al->cognome.":".$al->username.":".$al->password.":".$al->clean_pwd."\n";
			fwrite($log_file, $str_log);
		}
	}
	
}
else{
	
}

?>

<html>
<head>
<title>Creazione account</title>
<link rel="stylesheet" type="text/css" href="../css/Underground.css">
</head>
<body>
<p style="text-align: center; font-weight: bold; font-size: 12px; color: #FFFFFF">Creazione account</p>
<br/><br/>
<form>
<p style="text-align: center; font-weight: bold; font-size: 12px; ">
<?php
$msg = "";
if($incompleti == 0)
	$msg = "Nessun account da completare.";
else
	$msg = "Completati $incompleti account";
print $msg;
?>
</p>
</form>
<br/><br/><br/>
<div style="width: 100%; margin-left: 350px">
	<input type="button" onclick="window.close()" value="Chiudi"/>
</div>
</body>
</html>